#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
//10种酱料，每种放1g，2g或3g，输入一个数字表示酱料的总g数，输出每种酱料的组合
int n;
int path[15];
int sum=0;
void dfs(int dep)
{
    if(sum>n)
    return;
	if (dep > 10)
	{
		if(sum == n)
		{
			for (int i = 1; i <= 10; i++)
			{
				printf("%d ", path[i]);
			}
			printf("\n");
		}
		return;
	}
	for (int i = 1; i <= 3; i++)
	{
		path[dep] = i;
		sum += i;
		dfs(dep + 1);
		sum -= i;
	}

}
int main()
{
	scanf("%d", &n);
    if(n>30||n<10)
    printf("0");
    else
	dfs(1);
	return 0;
}